home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / Drtf / DRichMoreStyle.h < prev    next >
Text File  |  1996-07-05  |  5KB  |  189 lines

  1. // DRichMoreStyle.h
  2. // d.g.gilbert
  3.  
  4. #ifndef _DRICHMORESTYLE_
  5. #define _DRICHMORESTYLE_
  6.  
  7. #include "DRichStyle.h"
  8.  
  9.  
  10. struct PictLinkIndex {
  11.     short            fKind;
  12.   short            fLinkid;        // gopher/html link id 
  13.     Nlm_RecT    fLoc;
  14. };
  15.  
  16.  
  17. class DPictStyle : public DStyleObject
  18. {
  19. public:
  20.     // this is a quick fix to having DPictStyle & others subclassing DRichStyle
  21.     // -- before the DRichStyle subclasses, must extensively revise DRS handling
  22.     // so that statically allocated (fixed size) DRS classes are gone & a DRS::Clone
  23.     // works  -- this is tied to problem of bad DObject::objSize for static alloc
  24.  
  25.     enum kinds {
  26.         kPictKindStart = kDefaultObject,
  27.         kPictOther,
  28.          kPictMac,
  29.          kPictWinMeta,
  30.          kPictPMMeta,
  31.          kPictDIBits,
  32.          kPictWinBits,
  33.          kPictGIF,
  34.          kPictNetPic,
  35.          kPictNetLink,
  36.          kPictMapLink
  37.         };
  38.  
  39.     PictLinkIndex*    fLinks;
  40.     short        fNumLinks;
  41.  
  42.     DPictStyle();
  43.     DPictStyle( short kind, void* data, ulong dsize, Boolean owndata= false);
  44.   virtual ~DPictStyle();
  45.     virtual void AddLink( short kind, short linkid, Nlm_RecT loc);
  46.     virtual short GetLink( Nlm_PoinT atp, short& kind);
  47.     virtual short GetLink( short index, short& kind, Nlm_RecT& loc);
  48.   virtual void Draw(Nlm_RecT area);
  49.     virtual Boolean HasNetPict();
  50.   virtual Boolean CanDraw();
  51. };
  52.  
  53.  
  54.  
  55.  
  56. class DControlStyle : public DStyleObject
  57. {
  58. public:
  59.     enum kinds {
  60.         // ?? make these subclasses !?
  61.         kControlKindStart = 23640,
  62.         kButton,
  63.         kSubmitButton, // GoChooseF, GoAskF
  64.         kResetButton,
  65.          kRadioButton,
  66.          kCheckBox,
  67.          kPopup,
  68.          kPrompt,
  69.          kEditText,
  70.          kDialogScrollText,
  71.          kPasswordText,
  72.         kFileChooser,
  73.          kHidden,
  74.         kForm,
  75.         kControlKindEnd
  76.         };
  77.  
  78.     DView * fControl;
  79.     DView * fSuperview;
  80.     char    * fDefaultText;
  81.     char    * fVarname;  // variable name for html form
  82.     long        fId;
  83.     short        fWidth, fHeight; 
  84.     short     fSelected; // for kCheckBox, kRadio, kPopup
  85.     Boolean fInstalled;
  86.     char    * fData2;    
  87.     ulong        fSize2;
  88.     
  89.     DControlStyle(DView* super);
  90.     DControlStyle(DView* super, short kind, void* data, ulong dsize, Boolean owndata= true);
  91.   virtual ~DControlStyle();
  92.   virtual void Draw(Nlm_RecT area);
  93.     virtual void SetData( short kind, void* data, ulong dsize, Boolean owndata,
  94.                     void* data2 = NULL, ulong dsize2 = 0);
  95.     virtual void ControlData( char* varName, char* defaultText, char* text2=NULL);
  96.   virtual Boolean CanDraw();
  97.     virtual void Install();
  98.     virtual const char* Varname();
  99.     virtual const char* Value();
  100.     virtual void getsize();
  101.     virtual short Width();
  102.     virtual short Height();
  103. };
  104.  
  105.  
  106. class DPromptCStyle : public DControlStyle {
  107. public:
  108.     DPromptCStyle(DView* super) : DControlStyle(super) { fKind= kPrompt; }
  109.     virtual void Install();
  110. };
  111.  
  112.  
  113. class DEditTextCStyle : public DControlStyle {
  114. public:
  115.     DEditTextCStyle(DView* super) : DControlStyle(super) { fKind= kEditText; }
  116.     virtual void Install();
  117.     virtual const char* Value();
  118. };
  119.  
  120. class DDialogTextCStyle : public DControlStyle {
  121. public:
  122.     DDialogTextCStyle(DView* super): DControlStyle(super) { fKind= kDialogScrollText; }
  123.     virtual void Install();
  124.     virtual const char* Value();
  125. };
  126.  
  127. class DButtonCStyle : public DControlStyle {
  128. public:
  129.     DButtonCStyle(DView* super): DControlStyle(super)  { fKind= kButton; }
  130.     virtual void Install();
  131. };
  132.  
  133. class DDefaultButtonCStyle : public DControlStyle {
  134. public:
  135.     DDefaultButtonCStyle(DView* super): DControlStyle(super)  { fKind= kSubmitButton; }
  136.     virtual void Install();
  137. };
  138.  
  139. class DCheckboxCStyle : public DControlStyle {
  140. public:
  141.     DCheckboxCStyle(DView* super): DControlStyle(super) { fKind= kCheckBox; }
  142.     virtual void Install();
  143.     virtual const char* Value();
  144. };
  145.  
  146. class DRadioCStyle : public DControlStyle {
  147. public:
  148.     DRadioCStyle(DView* super): DControlStyle(super) { fKind= kRadioButton; }
  149.     virtual void Install();
  150.     virtual const char* Value();
  151. };
  152.  
  153. class DFileCStyle : public DControlStyle {
  154. public:
  155.     DView* fNamebox;
  156.     DFileCStyle(DView* super): DControlStyle(super), fNamebox(NULL) { fKind= kFileChooser; }
  157.     virtual void Install();
  158.     virtual const char* Value();
  159.     virtual void Draw( Nlm_RecT area);
  160. };
  161.  
  162. class DPopupCStyle : public DControlStyle {
  163. public:
  164.     DPopupCStyle(DView* super): DControlStyle(super) { fKind= kPopup; }
  165.     virtual void Install();
  166.     virtual const char* Value();
  167. };
  168.  
  169. class DPasswordCStyle : public DControlStyle {
  170. public:
  171.     DPasswordCStyle(DView* super): DControlStyle(super) { fKind= kPasswordText; }
  172.     virtual void Install();
  173.     virtual const char* Value();
  174. };
  175.  
  176. class DHiddenCStyle : public DControlStyle {
  177. public:
  178.     DHiddenCStyle(DView* super) : DControlStyle(super) { fKind= kHidden; }
  179.     virtual void Install();
  180.     virtual const char* Value();
  181. };
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188. #endif
  189.